//由推导有，最终的计算公式为C(2n,n)/(n+1)
//因为n取值范围比10^5小，所以可以用数中的排列组合，利用小费马定理和快速幂求逆元即可
#include <iostream>
using namespace std;

typedef long long ll;

const int N = 200010; //因为要计算2n
const int mod = 1e9 + 7;

int n;                 //获取输入
ll fact[N], infact[N]; //预处理的阶乘以及阶乘的逆元

ll quick_pow(int a, int b, int p) //快速幂
{
    ll res = 1, t = a;
    while (b) //访问b的每一位二进制
    {
        if (b & 1) //如果当前位为1
            res = res * t % p;
        t = t * t % p;
        b >>= 1;
    }
    return res;
}

int main()
{
    freopen("cin.txt", "r", stdin);
    cin >> n;
    fact[0] = infact[0] = 1;
    for (int i = 1; i <= 2 * n; ++i)
    {
        fact[i] = fact[i - 1] * i % mod;
        infact[i] = quick_pow(fact[i], mod - 2, mod);
    }
    cout << fact[2 * n] * infact[n] % mod * infact[n] % mod * quick_pow(n + 1, mod - 2, mod) % mod; //这里也要用逆元，不能直接除
    return 0;
}